package ru.fivestarter.view.authorisation;

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import ru.fivestarter.model.authorisation.UserAuthentification;

/**
 *
 * Бин регистрации
 * @author fivestarter
 * 
 */
public class RegistrationBean {
	private String login;
	private String password;
	@EJB UserAuthentification userRegistration;
	public RegistrationBean() {
		// TODO Auto-generated constructor stub
	}

	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}
	
	

	public String registration(){//метод регистрации
		FacesContext fc = FacesContext.getCurrentInstance();
		if(userRegistration.registration(login, this.getHash(password))){ // если регистрация прошла успешно
			return "index";
		}
		else{
			fc.addMessage("errorRegistration", new FacesMessage(FacesMessage.SEVERITY_WARN,"Ошибка. Пользователь с таким логином уже присутствует в системе","Ошибка. Пользователь с таким логином уже присутствует в системе"));
			return null;
		}
	}
	
	private String getHash(String str) {
	 	MessageDigest md5 = null;
	 	BigInteger md5_biginteger;
	 	String result;
		try {
			md5 = MessageDigest.getInstance("MD5");
		} catch (NoSuchAlgorithmException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	 	byte[] md5_byte_array = md5.digest(str.getBytes());
	 	md5_biginteger = new BigInteger(1, md5_byte_array);
	 	result=md5_biginteger.toString(16);
	 	while (result.length()!=32){
	 		result="0"+result;
	 	}
	 	return result;
    }
	

}
